package dao;

import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;
import org.hibernate.Query;
import org.hibernate.Session;

import logger.ExceptionLogger;
import logger.ExceptionLoggerImpl;
import modelo.Empleado;

/**
 * Implementación de DAO para persistencia de empleados
 * @author DiegoAlejandro
 *
 */
public class EmpleadoDAOHibernateImp extends HibernateDAO implements EmpleadoDAO {


	@Override
	public List<Empleado> getAll() throws Exception {
		Logger.getLogger(this.getClass()).info("**Realizo getAll() de empleados");
		
		List<Empleado> empleados = new ArrayList<Empleado>();
		Session sesion = this.getSession();
		try {
			
			Query query = sesion.createQuery("from Empleado");
			empleados = (List<Empleado>) query.list();
		
		} catch (Exception e) {
			ExceptionLogger eLogger = new ExceptionLoggerImpl(Logger.getLogger(this.getClass()));
			eLogger.logExceptionFatal(e);
			throw e;
		
		} finally {
			this.close(sesion);
		}
		
		// TODO Auto-generated method stub
		return empleados;
	}
}
